#pragma once
#include <glm/glm.hpp>

class Object3D {
public:
    Object3D(){};
    Object3D(const Object3D &) = delete;
    // Object3D(Object3D &&other) : position(other.position) { other.position = glm::vec3{0.0}; }

    Object3D &operator=(const Object3D &) = delete;
    // Object3D &operator=(Object3D &&other) {
    //     position = other.position;
    //     other.position = glm::vec3{0.0};
    //     return *this;
    // }
public:
    virtual void update() = 0;

public:
    alignas(4) bool visible{true};
    glm::vec3 position{};
};